ref: c0fd1892b017204adf4f2bb8bf855370c33b284c
parent: a32b1e7095466c6ba08d84827b0cb16e6e623696
author: robs <robs>
date: Mon Sep 10 15:18:18 EDT 2007
don't assume all files in PKGLIBDIR have prefix
--- a/src/soxio.c
+++ b/src/soxio.c
@@ -32,10 +32,10 @@
const char *end = file + strlen(file);
const char prefix[] = "libsox_fmt_";
char fnname[MAX_NAME_LEN];
- char *start = strstr(file, prefix) + sizeof(prefix) - 1;
+ char *start = strstr(file, prefix);
(void)data;
- if (start < end) {
+ if (start && (start += sizeof(prefix) - 1) < end) {
int ret = snprintf(fnname, MAX_NAME_LEN, "sox_%.*s_format_fn", end - start, start);
if (ret > 0 && ret < MAX_NAME_LEN) {
sox_format_fns[sox_formats].fn = (sox_format_fn_t)lt_dlsym(lth, fnname);