Wed May 25 09:48:58 2022 UTC ()
lsof: don't consume buffer space if we didn't add a '/'


(tnn)
diff -r1.2 -r1.3 pkgsrc/sysutils/lsof/files/rnmt.c

cvs diff -r1.2 -r1.3 pkgsrc/sysutils/lsof/files/rnmt.c (expand / switch to unified diff)

--- pkgsrc/sysutils/lsof/files/rnmt.c 2022/05/25 09:37:54 1.2
+++ pkgsrc/sysutils/lsof/files/rnmt.c 2022/05/25 09:48:58 1.3
@@ -182,28 +182,28 @@ build_path(char **buf, size_t *remaining @@ -182,28 +182,28 @@ build_path(char **buf, size_t *remaining
182{ 182{
183 size_t len; 183 size_t len;
184 184
185 if (lnc == NULL) 185 if (lnc == NULL)
186 return; 186 return;
187 187
188 build_path(buf, remaining, lnc->lnc_plnc); 188 build_path(buf, remaining, lnc->lnc_plnc);
189 if (remaining == 0) { 189 if (remaining == 0) {
190 return; 190 return;
191 } 191 }
192 if (lnc->lnc_plnc != NULL) { 192 if (lnc->lnc_plnc != NULL) {
193 **buf = '/'; 193 **buf = '/';
194 (*buf)++; 194 (*buf)++;
 195 remaining--;
195 } 196 }
196 remaining--; 
197 len = lnc->lnc_nlen; 197 len = lnc->lnc_nlen;
198 if (*remaining < len) 198 if (*remaining < len)
199 len = *remaining; 199 len = *remaining;
200 memcpy(*buf, lnc->lnc_name, len); 200 memcpy(*buf, lnc->lnc_name, len);
201 *remaining -= len; 201 *remaining -= len;
202 *buf += len; 202 *buf += len;
203} 203}
204 204
205char * 205char *
206ncache_lookup(char *buf, int blen, int *fp) 206ncache_lookup(char *buf, int blen, int *fp)
207{ 207{
208 const struct lnc *lnc; 208 const struct lnc *lnc;
209 char *p; 209 char *p;